This invention relates generally to systems and methods for generating software applications in an arbitrary object framework, and more specifically to systems and methods for generating web sites in an arbitrary object framework.
Three processes used to create complex software applications such as web sites are form, function, and content. Form includes graphic designs, user interfaces, and graphical representations created by a designer or a group of designers. Function includes logical functionality, which can be software code created by a programmer or group of programmers. Form includes informative content. Informative content can include written, recorded, or illustrated documentation, such as photographs, illustrations, product marketing material, and news articles. Content can be created by writers, photographers, artists, reporters, or editors.
Currently, typical workflows dictate a serial approach to integrating the form, function, and content to create complex software applications such as a web site. The serial approach is illustrated in FIG. 1. In FIG. 1, content 10 for a complex software application can be chosen or created. Form 12 for the presentation of content 10 can then be created. Functionality 14 can then be generated using code to create the complex software application (product 16) with the desired information (content 10) and style (form 12). Using the method illustrated in FIG. 1, every final component of the complex software application must be manipulated by a programmer before it is ready to be used. The exact workflow may vary from industry to industry or business to business, but the basic restrictions are generally the same.
A traditional approach such as that illustrated in FIG. 1, may create unwanted bottlenecks in the production process. Each upstream revision, such as a change of content 10 or design 12, forces a repetition of the entire process. As an example, consider a web site for a large newspaper. The web site may have a function that can include a file into the web site. The marketing department may decide to change the appearance of the header on the web site depending on the browser of a user. In this case, a programmer may need to invoke an external script or embed some specific logic within the web site. Unfortunately, if there is a large web site with thousands of pages of information stored on a server, the programmer may have to change every one of the thousands of pages. Therefore, a small change by the marketing department can cause a large burden on the programming department.
Prior art solutions have succeeded in partially separating some of these functions. Notably, content management databases and digital repositories provide a means of separating content from form and function. Likewise, sophisticated software development teams frequently employ internal code structuring techniques that can help to minimize dependencies between interface designs and the functions they access. However, content management tools typically fail to address form/function issues. Therefore, there can still be production slow-downs due to changes in form that require a subsequent change in functionality.
Therefore a need exists for a method of generating complex software applications that reduces or eliminates production delays and the workload for programmers due to changes in content and/or form. This method should separate form, content and function so that each area can be independently changed.
The present invention provides a system and method for generating software applications that substantially eliminates or reduces disadvantages and problems associated with previously developed systems and methods used for generation of software applications. More specifically, the present invention provides a method for generating software applications in an arbitrary object framework. The method of the present invention separates content, form, and function of the computer application so that each may be accessed or modified independently. The method of this invention includes creating arbitrary objects, managing the arbitrary objects throughout their life cycle, and deploying the arbitrary objects in a design framework for use in complex computer applications.
The present invention provides an important technical advantage in that content, form, and function are separated from each other in the generation of the software application. Therefore, changes in design or content do not require the intervention of a programmer. This advantage decreases the time needed to change various aspects of the software application. Consequently, cost is reduced and versatility is increased.
The present invention provides another technical advantage in that users are not required to use a proprietary language to encode. These arbitrary objects may include encapsulated legacy data, legacy systems and custom programming logic from essentially any source in which they may reside. Any language supported by the host system, or any language that can be interfaced to by the host system, can be used to generate an object within the application.
The present invention provides yet another technical advantage in that it can provide a single point of administrative authority that can reduce security risks. For instance, a large team of programmers can work on developing a large group of arbitrary objects within the object library. If one object has a security hole, an administrator can enter the object library and disable that arbitrary object.
Still another technical advantage of the present invention is that it enables syndication of the software application. As noted above, functionality is separate from form and content. Consequently, a user can easily introduce a new look for the application or syndicate the content and functionality of the application to another group without having to recode all of the objects needed to access content.
Another technical advantage of the present invention is that it allows for personalization and profiling. With personalization, the web presentation is tailored to the specific needs of the web user based on the user""s past history. Profiling also enables tailoring a web site or presentation. Profiling is dependent on environmental variables such as browser type or IP address.